package com.xufx.thread.liaoxuefeng.thread3_intrerrupt;

/**
 * Created by xufx on 2021/12/27 12:28
 */
public class FlagMain {
    public static void main(String[] args) throws InterruptedException {
        HelloFalgThread t = new HelloFalgThread();
        t.start();
        Thread.sleep(1000);
        t.running = false;
    }
}

class HelloFalgThread extends Thread{
    // volatile表示runniong是一个线程之间的共享变量，确保每个线程都能读取到更新后的变量值
    // volatile关键字的作用是通知虚拟机
    // 1. 每次访问变量时，总是获取到内存的更新值
    // 2. 每次修改变量后，总是立刻写到主内存
    // 也就是说，volatile关键字解决了共享变量在线程间的可见性问题
    public volatile boolean running = true;
    @Override
    public void run(){
        int n = 0;
        while (running){
            n++;
            System.out.println(n + "hello");
        }
        System.out.println("end");
    }
}
